Skip to content

[To dev/1.3] refactor client-cpp#17803

Open
hongzhi-gao wants to merge 14 commits into
apache:dev/1.3from
hongzhi-gao:refactor/cpp-client-sdk-1.3
Open

[To dev/1.3] refactor client-cpp#17803
hongzhi-gao wants to merge 14 commits into
apache:dev/1.3from
hongzhi-gao:refactor/cpp-client-sdk-1.3

Conversation

@hongzhi-gao
Copy link
Copy Markdown
Contributor

Description

related PR #17801

Content1 ...

Content2 ...

Content3 ...


This PR has:

  • been self-reviewed.
    • concurrent read
    • concurrent write
    • concurrent read and write
  • added documentation for new or modified features or behaviors.
  • added Javadocs for most classes and all non-trivial methods.
  • added or updated version, license, or notice information
  • added comments explaining the "why" and the intent of the code wherever would not be obvious
    for an unfamiliar reader.
  • added unit tests or modified existing tests to cover new code paths, ensuring the threshold
    for code coverage.
  • added integration tests.
  • been tested in a test IoTDB cluster.

Key changed/added classes (or packages if there are too many classes) in this PR

Reorganize the C++ client into include/session/rpc with CMake-driven
build, embedded Thrift, Windows DLL packaging, SessionC API, and CI
release workflows. Scope excludes 2.x table-model APIs and Thrift fields.
@hongzhi-gao hongzhi-gao changed the title [] refactor(client-cpp): port SDK refactor to dev/1.3 without table model [To dev/1.3] refactor(client-cpp): port SDK refactor to dev/1.3 without table model Jun 1, 2026
Replace pluginManagement cmake-maven-plugin with io.github 4.2.3-b1 so with-cpp Maven builds resolve the plugin. Pin clang.format.version to 17.0.6 and apply Spotless formatting to C++ sources.
ubuntu-latest ships clang-format 18.x which breaks Spotless when clang.format.version is 17.0.6. Install LLVM 17 clang-format on Linux, macOS, and Windows like refactor/cpp-client-sdk.
cmake-maven-plugin 4.2.3-b1 requires Maven 3.9.9+. The wrapper was on 3.9.6, causing with-cpp CI to fail even when using ./mvnw.
GCC on Linux CI fails when Session.h includes AbstractSessionBuilder.h before vector; add missing #include <vector> for nodeUrls member.
Apply server columnNameIndexMap for TsBlock reads, align Time column handling with the Java client, and read text types by physical column type. Defer C API session open, disable auto-fetch in tests, and fall back when SHOW AVAILABLE URLS is unsupported.
- Revert unrelated .gitignore changes (.run, .claude, relational-grammar)

- Remove using namespace std from public headers Session.h and Common.h

- Download Catch2 at build time via Maven/CMake instead of vendoring catch.hpp
Run wget in generate-resources (not generate-test-resources, which runs after compile). CMake also downloads catch.hpp when the header is still missing.
…space std

- SessionConnection.h/cpp: std::string, std::vector, std::exception, std::shared_ptr

- IoTDBRpcDataSet.cpp: std::exception in catch handlers

- Session.h: (std::max) to avoid Windows max macro conflict
Align Windows profile paths with the 1.3 distribution layout (scripts under sbin/, not windows/).
…1.3 port

Align example READMEs with the tree-only scope, drop unused table-model
API surface, and remove IDeviceID redirect helpers that have no callers.
windows-latest now ships VS 2026 while pom.xml defaults to VS 2022.
Use vswhere in the multi-language-client workflow and pass -Dcmake.generator
so CMake matches the installed toolchain.
Replace windows-latest and broken vswhere detection with explicit
windows-2022 and windows-2025-vs2026 runners; pass Visual Studio 18 2026
generator only on the VS 2026 image. Also match ubuntu/mac matrix and
add Spotless check from the refactor branch.
@hongzhi-gao hongzhi-gao changed the title [To dev/1.3] refactor(client-cpp): port SDK refactor to dev/1.3 without table model [To dev/1.3] refactor client-cpp Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant